﻿#region License
/*Copyright (c) 2010 Andrew Collard (andrewcollard@hotmail.com)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.*/
#endregion

using System;
using System.Collections.Generic;

namespace TorchView.Game
{
  /// <summary>
  /// This class is a reference singleton for all the non-changing text values.
  /// Could potentially localize later by pulling from an swappable XML file or something.
  /// But collecting them here for now.
  /// Type of effects that an item can have from Koitenshin's list on RGF.
  /// </summary>
  /// 

  // Localization will be done through resx files
  [Obsolete("All constant strings should reside at the top of the class that is using it.  Localized strings should reside in resx files.", true)]
  public static class MagicWord
  {
    public const string ACTIVE = "Active";

    public const string CHARACTER = "Character";

    public static readonly string[] CLASS_LIST = { "Alchemist", "Destroyer", "Vanquisher" };

    public const string COUNT = "Count";

    public static readonly string[] DAMAGE_SOURCE_TYPE = { "Physical", "Elemental", "Fire", "Ice", "Electrical", "Poison", "Physical & Elemental" };

    public const string DUNGEON = "Dungeon";

    public static readonly string[] EFFECT_TYPE = { 
            "+{0} Melee Damage",                        //0x00 = 0
            "+{0} Ranged Damage",
            "+{0} Defense Attribute Bonus",
            "+{0} Magic Attribute Bonus",
            "+{0} Mana",
            "+{0} Health",
            "{0} Mana Recovery per second",
            "{0} Health Recovery per second",
            "+{0} Armor",                               //0x08 = 8
            "[BROKEN]",
            "+{0} {2} Damage",
            "Damage Taken Increased by {0}",
            "+{0} Knockback",
            "+{0} Sight Bonus",
            "+{0} View Angle Bonus",
            "+{0}% Melee Damage Bonus",
            "+{0}% Ranged Damage Bonus",                //0x10 = 16
            "+{0}% Defense Bonus",
            "+{0}% Magic Bonus",
            "+{0}% Mana",
            "+{0}% Health",
            "{0}% Faster Movement",
            "{0}% Faster Attack",
            "+{0}% to Armor",
            "[BETA?] % Attack Rating Bonus",            //0x18 = 24
            "Increases All {2} Damage by {0}%",
            "Damage Taken is Increased by {0}%",
            "{0}% Increased Magic Find",
            "{0}% Increased Gold Find",
            "{0}% Faster Cast Speed",
            "{0}% Health Stolen",
            "{0}% Mana Stolen",
            "{0}% Damage Reflected Back on Attacker",   //0x20 = 32
            "+{0}% Increased Chance to Block",
            "{0}% Reduced Level Requirements",
            "+{0} Armor",
            "+{0} Magic Defense",
            "+{0} Fire Resistance",
            "+{0} Ice Resistance",
            "+{0} Electrical Resistance",
            "+{0} Poison Resistance",                   //0x28 = 40
            "{0}% Sight Bonus",
            "{0}% View Angle Bonus",
            "+{0} Knockback",
            "[NOT USABLE] NA",
            "[NOT USABLE] Create Town Portal",
            "[NOT USABLE] Identify Item",
            "[NOT USABLE] 14 Seconds Summon Duration",
            "{0} Damage Reflected",                     //0x30 = 48
            "{0} Health Stolen on Hit",
            "{0} Mana Stolen on Hit",
            "+{0} Increased Gold Drop",
            "+{0} Damage",
            "{0}% Knock Back Resistance",
            "{0} Armor Degraded per Hit",
            "+{0} Critical Hit Chance",
            "+{0}% Interrupt Chance",                   //0x38 = 56
            "[PET] Transform into a {5} for {0} seconds",
            "[BROKEN]",
            "[BROKEN]",
            "{0}% Chance to Reflect {1}% of Missile Damage",
            "[BROKEN]",
            "{0}% Chance to Block",
            "[BROKEN]",
            "{0}% Chance to Stun",                      //0x40 = 64
            "[NOT USABLE] Learn ???",
            "{0} Armor Degraded per Hit",
            "[NOT USABLE] Desummon a ???",
            "{0}% Increased Experience Gain",
            "+{0} Strength Attribute Bonus",
            "+{0} Dexterity Attribute Bonus",
            "+{0}% Strength Bonus",
            "+{0}% Dexterity Bonus",                    //0x48 = 72
            "[PET] Transform into a {5} permanently",
            "[BETA?] {0}% Chance to Cast ???",
            "[BETA?] {0}% Chance to Cast (Item Property Name) on Target",
            "[BETA?] {0}% Chance to Cast ??? at Target",
            "{0}% Increased Fame Gain",
            "Increases Missile Range by {0} meter(s)",
            "Conveys {0}% Chance that Target Flees for {4} seconds",
            "Conveys {0}% Chance to Force Target to Fight for You for {4} seconds",  //0x50 = 80
            "[BETA?] {0}% Chance to Cast ??? when you get hit",
            "+{0} Level to {3} Skill",
            "{0}% Decrease in Vendor Prices",
            "{0}% Increased Fishing Luck",
            "+{0} to Attack Spell levels",
            "+{0} to Defense Spell levels",
            "+{0} to Charm Spell Levels",
            "{0}% Damage Bonus when Dual-Wielding",     //0x58 = 88
            "{0}% Bonus to Critical Damage",
            "+{0}% Potion Effectiveness",
            "+{0}% Pet and Minion Damage",
            "+{0}% Pet and Minion Speed",
            "-{0} to all Item Requirements",
            "-{0} to Armor Equipment Requirements",
            "-{0} to Spell Learning Requirements",
            "{0}% Decreased Pet Town Travel Time",      //0x60 = 96
            "+{0}% Pet and Minion Armor",
            "-{0} to Martial Equipment Requirements",
            "+{0}% Martial Weapon Damage",
            "-{0} to Ranged Equipment Requirements",
            "-{0} to Mage Equipment Requirements",
            "+{0}% Ranged Weapon Damage",
            "+{0}% Mage Weapon Damage",
            "+{0}% Pet and Minion Health",              //0x68 = 104
            "[BETA?] {0}% Chance to Cast ??? on death",
            "{0}% Chance to Freeze Target",
            "{0}% Chance to Burn Target",
            "{0}% Chance to Poison Target",
            "{0}% Chance to Shock Target",
            "Unknown 1",
            "Unknown 2",
            "Unknown 3",                                //0x70 = 112
            "Unknown 4",
            "Unknown 5",
            "Unknown 6",
            "Unknown 7",
            "Unknown 8",
            "Unknown 9",
            "Unknown 10",
            "Unknown 11",                               //0x78 = 120
            "Unknown 12",
            "Unknown 13"
        };

    public const string ENTITY = "Entity";

    public const string FILENAME_ERR = "filename";

    public const string FORMATION = "Formation";

    public const string GAME_BACKUP_EXT = "bak";
    public const string GAME_SAVE_WILDCARD = "*.svt";
    public const string GAME_STASH_WILDCARD = "*.bin";

    public const string INACTIVE = "Inactive";

    public const string PET_TRANSFORM_TAG = "PET ";

    public static readonly string[][] SKILL_LIST = {    //In save order.
            new string[] { "Ember Bolt",                    //Alchemist
                "Magic Weapons Expertise",
                "Iceshock",
                "Adventurer",
                "Ember Lightning",
                "Offensive Spell Mastery",
                "Barter",
                "Ember Lance",
                "Pyre",
                "Advanced Spellcasting",
                "Ember Strike",
                "Nether Imp",
                "Ranged Weapons Expertise",
                "Thorned Minions",
                "Pet Mastery",
                "Summon Alchemic Golem",
                "Charm Spell Mastery",
                "Terror",
                "Treasure Hunter",
                "Burning Bind",
                "Summon Beam Golem",
                "Ember Shock",
                "Armor Expertise",
                "Ember Shield",
                "Critical Strikes",
                "Infuse",
                "Defensive Spell Mastery",
                "Frailty",
                "Martial Weapons Expertise",
                "Ember Phase",
                "Block and Parry",
                "Ember Sentry",
                "Spell 1",
                "Spell 2",
                "Spell 3",
                "Spell 4"
            },
            new string[] {                                  //Destroyer
            },
            new string[] { "Ranged Weapon Expertise",       //Vanquisher
                "Ricochet",
                "Frost Pilum",
                "Offensive Spell Mastery",
                "Seeking Shot",
                "Explosive Shot",
                "Critical Strikes",
                "Adventurer",
                "Arrow Hail",
                "Barter",
                "Needle Arc",
                "Venomous Dirks",
                "Treasurer Hunter",
                "Defensive Spell Mastery",
                "Wind of Justice",
                "Stab",
                "Armor Expertise",
                "Martial Weapons Expertise",
                "Hamstring",
                "Devouring Trap",
                "Pet Mastery",
                "Flame Trap",
                "Flechette Trap",
                "Dual Weilding",
                "Shock Trap",
                "Block and Parry",
                "Magic Weapons Expertise",
                "Charm Spell Mastery",
                "Lightning Bomb",
                "Advanced Spellcasting",
                "Spell 1",
                "Spell 2",
                "Spell 3",
                "Spell 4"
            } 
        };
  }
}
